Здравствуйте, помогите пожалуйста.
Дано: разнотипные поля (hidden, submit, file) без формы <form>
Задача: с помощью js создать форму, закинуть в нее значения со всех данных полей, всё это передать файлу php ( а точнее в обработку php-скрипта, который находится в этом же файле), и вывести результат(ответ) php-скрипта на эту же страницу без перезагрузки.
Файл для загрузки - это excel
Все остальные поля тоже должны быть переданы в управление/обработку php
Тег <form> использовать нельзя/не надо.
Сделала скрипт, отдает ответ положительный, о том что всё передано, но в msg показы данные только с поля type=file, а в php ничего не приходит и не выводится.
Периодически ругается еще
"Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/."
Помогите пожалуйста.
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<div id="excelload">
<input type="hidden" name="MAX_FILE_SIZE" value="500000" />
Выберите файл:
<input name="userfile" id="load_file" type="file" value="" />
<input type="submit" value="Загрузить" name="submit_load" id="submit_load" />
</div>
<p class="modal"></p>
<script>
$('#excelload #submit_load').click(function() {
var formData = new FormData();
formData.append('MAX_FILE_SIZE', $('#excelload input[type=hidden]').val());
formData.append('submit_load', $('#excelload input[type=submit]').val());
formData.append('userfile', $('#excelload input[type=file]')[0].files[0]);
/*var xhr = new XMLHttpRequest();
xhr.open("POST", "<? echo $_SERVER['REQUEST_URI'] ?>", true);
xhr.setRequestHeader('Content-Type', 'multipart/form-data;');
xhr.send(formData);*/
$.ajax({
type: "POST",
url: "<? echo $_SERVER['REQUEST_URI'] ?>",
//dataType: "json",
data: formData,
contentType: false,
processData: false,
success: function(msg) {
$(".modal").html("<code>GooD!"+msg+"</code>");
},
error: function() {
$(".modal").html("<pre>Sorry! Couldn't process your request.</pre>");
}
});
});
</script>
<?php
if(isset($_POST['submit_load'])) {
$data1 = $_FILES;
$data1_name = $_FILES['userfile']['name'];
$data2 = $_POST;
echo json_encode($data1);
echo json_encode($data1_name);
echo json_encode($data2);
}
?>
</body>
</html>